/*****************************************************
Copyright (C) 2020. All rights reserved.
File name     ：HashQuad.h
Version       ：v1.0
Author        ：zhengqijun
Date          ：2020-04-04
Function List ：
Description   ：HashTable(Open addressing hashing)
******************************************************/

#ifndef HASHQUAD_H_
#define HASHQUAD_H_

// Type Definition
struct HashTbl;
typedef int ElementType;
typedef unsigned int Index;
typedef Index Position;
typedef struct HashTbl *HashTable;

// Function Lists
HashTable InitializeTable(int TableSize);
void DestroyTable(HashTable H);
Position Find(ElementType Key, HashTable H);
void Insert(ElementType Key, HashTable H);
void Delete(ElementType Key, HashTable H);
ElementType Retrieve(Position P, HashTable H);
HashTable Rehash(HashTable H);
void PrintHashTable(HashTable H);

#endif  /* HASHQUAD_H_ */

// EOF

